package com.adsi.graficos;

import com.adsi.logica.LogicaConsignacionLocal;
import com.adsi.logica.LogicaRetirosLocal;
import com.adsi.modelo.Consignaciones;
import com.adsi.modelo.Retiros;
import java.io.Serializable;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import org.primefaces.model.chart.AxisType;
import org.primefaces.model.chart.CategoryAxis;
import org.primefaces.model.chart.Axis;
import org.primefaces.model.chart.ChartSeries;
import org.primefaces.model.chart.LineChartModel;


/**
 *
 * @author Estudiante
 */
@ManagedBean(name = "LineView")
@RequestScoped
public class LineView implements Serializable {

    public LineView() {
    }
    @EJB
    private LogicaConsignacionLocal logicaConsignaciones;
    @EJB
    private LogicaRetirosLocal logicaRetiros;

    private LineChartModel lineModel2;

    @PostConstruct
    public void init() {
        createLineModels();
    }

    public LineChartModel getLineModel2() {
        return lineModel2;
    }

    public void setLineModel2(LineChartModel lineModel2) {
        this.lineModel2 = lineModel2;
    }

    private void createLineModels() {
           
        lineModel2 = initCategoryModel();
        lineModel2.setTitle("Categoria de Consignaciones");
        lineModel2.setLegendPosition("e");
        lineModel2.setShowPointLabels(true);
        lineModel2.getAxes().put(AxisType.X, new CategoryAxis("Cuentas"));
        Axis yAxis = lineModel2.getAxis(AxisType.Y);
        yAxis.setLabel("Cantidad");
        yAxis.setMin(0);
        yAxis.setMax(1000000);
    }

    private LineChartModel initCategoryModel() {
        LineChartModel model = new LineChartModel();

        List<Consignaciones> listaC = null;
        try {
            listaC = logicaConsignaciones.consutar();
        } catch (Exception ex) {

        }
        ChartSeries consig = new ChartSeries();
        consig.setLabel("Consignaciones");
        for (int i = 0; i < listaC.size(); i++) {
            consig.set(listaC.get(i).getConsignacionesPK().getCueNumero(), listaC.get(i).getConValor());

        }
        
       List<Retiros> listaR=null;
       try{
       listaR=logicaRetiros.consultar();
       } catch (Exception ex)
       {
       
       }
        ChartSeries retiro = new ChartSeries();
        retiro.setLabel("Retiros");
        for (int i = 0; i < listaR.size(); i++) {
            retiro.set(listaR.get(i).getRetirosPK().getCueNumero(),listaR.get(i).getRetValor());
            
        }

        model.addSeries(consig);
        model.addSeries(retiro);

        return model;
    }

}
